﻿// ColumnSelectionDialog.xaml.cs
using System.Collections.Generic;
using System.Linq;
using System.Windows;


namespace RevitProject.SpaceManager.Views
{
    // 用于在对话框中表示列信息的简单类
    public class ColumnVisibilityInfo
    {
        public string Header { get; set; } // 列头
        public string ColumnName { get; set; } // 列的 x:Name
        public bool IsVisible { get; set; } // 是否可见
    }

    public partial class ColumnSelectionDialog : Window
    {
        // 用于存储列信息的列表
        public List<ColumnVisibilityInfo> ColumnInfos { get; private set; }

        // 构造函数，接收当前的列信息
        public ColumnSelectionDialog(List<ColumnVisibilityInfo> currentColumnInfos)
        {
            InitializeComponent();
            // 复制一份传入的列表，避免直接修改原始列表直到用户点击确定
            ColumnInfos = currentColumnInfos.Select(c => new ColumnVisibilityInfo
            {
                Header = c.Header,
                ColumnName = c.ColumnName,
                IsVisible = c.IsVisible
            }).ToList();

            // 将列信息绑定到 ItemsControl
            ColumnsItemsControl.ItemsSource = ColumnInfos;
        }

        private void OkButton_Click(object sender, RoutedEventArgs e)
        {
            // 用户点击确定，设置 DialogResult 为 true 并关闭
            this.DialogResult = true;
            this.Close();
        }

        private void CancelButton_Click(object sender, RoutedEventArgs e)
        {
            // 用户点击取消，设置 DialogResult 为 false 并关闭
            this.DialogResult = false;
            this.Close();
        }
    }
}